import numpy as np


def read_glove_vecs(glove_file):
    """
    :param glove_file:
    :return: word -> ndarray
             vec  -> ndarray
    """
    with open(glove_file, 'r') as f:  # 打开.txt文件 读取
        words = []  # 定义一个words集合
        embed_table = []
        word_to_vec_map = {}  # 定义词到向量的映射字典

        for line in f:  # 遍历f中的每一行
            line = line.strip().split()  # 去掉首尾空格，每一行以空格切分  返回一个列表  第一项为单词 其余为单词的嵌入表示
            curr_word = line[0]  # 取出单词
            words.append(curr_word)  # 加到集合/词典中
            # 定义词到其嵌入表示的映射字典
            # word_to_vec_map[curr_word] = np.array(line[1:], dtype=np.float64)

            embed_table.append(np.array(line[1:], dtype=np.float64))

    return np.array(words), np.array(embed_table, dtype=object)


if __name__ == '__main__':
    word, table = read_glove_vecs(r'./data/little.txt')
    print(word)
    print(len(table[1]))
